﻿#ifndef ENTITY_H
#define ENTITY_H
#include <qrandom.h>
//随机数
#define random(min,max) (QRandomGenerator::global()->bounded(min, max))
//输出信息文件路径-行号和函数名
#define OutInfo (qDebug() << "文件路径:\n" << __FILE__ << "\n行号:" << __LINE__ << "\n函数名" << __FUNCTION__)
#include<QPainter>
#include<qdebug.h>
class Entity
{
public:
   static enum  Type
    {
        background,//背景
        player,//玩家
        enemy,//敌人
        weapons,//武器
        supply,//补给
        items,//物品
        plane,//飞机
        fighting,//战斗模块
        enemyPlane,//敌机
        gameStart,//开始界面
       checkpoint,//关卡模块
    };
    Entity(){};
    virtual~Entity() {};
    virtual void update() =0;
    virtual void draw(QPainter* painter)=0;
    //是否是活动的
    inline bool isActive()const {return active;}
    //释放
    inline void destroy(){active = false;}
    //获取类型
    inline Entity::Type type()const {return m_type;}
    //设置类型
    inline void setType(Entity::Type type){m_type = type;}
    //输出文件路径，行号，函数名
protected:
    QObject* m_parent=nullptr;//父窗口指针
private:
    bool active = true;     //实体是否是活动的
    Type m_type = player;         //实体的类型
};


#endif // ENTITY_H
